using UniversalAdminSystem.Domian.FileStorage.ValueObjects;
using UniversalAdminSystem.Domian.UserManagement.ValueObj;
using UniversalAdminSystem.Application.FileStorage.DTOs;
using UniversalAdminSystem.Domian.Core.ValueObjects;
using UniversalAdminSystem.Application.Common.Results;
using Microsoft.AspNetCore.Http;

namespace UniversalAdminSystem.Application.FileStorage.Interfaces;

public interface IFileAppService
{
    Task<FileUploadResultDto> UploadAsync(IFormFile file);

    Task<IEnumerable<FileUploadResultDto>> GetList();
    // Task<Result<FileDownloadDto>> DownloadAsync(FileId fileId);
    // Task<Result<IEnumerable<FileDto>>> ListAsync(FileId? parentId);
    // Task<Result<FileDto>> CreateFolderAsync(string name, FileId? parentId);
    // Task<Result> DeleteAsync(FileId fileId);
    // Task<Result<FileDto>> GetFileByIdAsync(FileId fileId);

    Task<FileDownloadDto> GetFileById(Guid id);

    Task RemoveFile(Guid id);
} 